File systems and disk arrays utilize two different methods for accessing data stored on a data storage medium. The two methods are distinguished by a number of characteristics. In a file system for example, files are accessed using a file abstraction. That is, data is represented by a file which may be opened, closed, created, deleted, read, and written. Data is managed in a file system through a hierarchy of files and directories. This hierarchical data management is commonly seen as a significant advantage over other data management schemes. File systems also support both data sharing and data storage device sharing. Security within data storage devices is based on file and directory level access control lists standardized as part of the file system protocols. Another advantage of file systems is that client/server compatibility is based on a small number of well-supported protocols. However, file system performance is reduced by data storage disk-resident file mapping arrangements which are required to map data for a file to physical or virtual locations of the storage media associated with a data storage device.
A disk array is a storage system that employs a number of separate storage devices or disks and manages data across all of the separate devices. These disk array storage systems are popular for implementing data storage redundancy schemes to guard against individual storage device failures. In contrast to a file system, data is accessed in a disk array using a block storage abstraction. That is, data is mapped to large contiguous storage spaces or logical units and is accessed as blocks contained in these logical units. Each block in a logical unit represents a certain amount of data storage space, commonly 512 bytes of storage space. The stored data in a disk array is managed as physical and virtual data storage devices represented by volumes and/or logical units. Although the block storage abstraction may improve the speed at which large amounts of data may be written and retrieved from the storage devices, there are a number of drawbacks associated with disk arrays as compared to file systems. One drawback is that client/server compatibility for disk arrays is subject to a variety of constraints that vary across clients and servers. Also, disk arrays support only device sharing but not data sharing. Furthermore, security within devices is based on vendor unique features.
Prior related U.S. patent application Ser. No. 09/819,265 now U.S. Pat. No. 6,904,441 discloses a data storage system that provides multiple access routes to a data storage device comprising either a single device or an array of data storage devices. In particular, patent application Ser. No. 09/819,265 is now U.S. Pat. No. 6,904,441 is directed to an arrangement that maintains file abstractions for all data stored in a disk array, while providing for both regular file system access to the disk array and alternatively direct block access. Access routes are preferably specified in the system according to certain route determinant characteristics associated with the respective files. Regardless of how the access routes are selected for particular data, the system disclosed in this prior related application provides multiple routes while maintaining the desirable file system hierarchy. Where file size is selected as the route determinant characteristic, the system disclosed in patent application Ser. No. 09/819,265 is now U.S. Pat. No. 6,904,441 allows large file access to be accelerated by direct array controller access, while allowing small file access in the normal way through both the file system processes and the array controller processes.